// this指向当前函数
function person(name, age) {
	this.name = name
	this.age = age
}
const p1 = new person('王哈哈', 3)
console.log(p1)
// info直接挂载给了 构造函数
person.info = 'aaa'
// 给person挂载一个实例方法 挂载在原型对象上
person.prototype.say = function () {
	console.log('这是挂载在person的实例方法')
}
// 调用person挂载一个实例方法
p1.say()
// class创建一个动物类
class Animal {
	// 构造器  若没有定义构造器则默认为之中有个空的构造器 类似于 constructor() {}  会优先执行构造器中的代码
	constructor(name, age) {
		// 实例属性
		this.name = name
		this.age = age
	}
	// 在class内部  由static修饰的属性  就是静态属性
	static info = 'eee'
	jioa() {
		console.log('这是Animal中的实例')
	}
}
const p2 = new Animal('阿黄', 2)
console.log(p2)
p2.jioa()

// 通过new出来的实例 访问到的属性 叫做 实例属性
console.log(p2.name)
// 通过构造函数直接访问到的叫做  静态属性
console.log(person.info)
